#ifndef ABSTRACTDATA_H
#define ABSTRACTDATA_H

#include "data_global.h"
#include "metadata.h"

#include <abstractmodelitem.h>

#include <QVariant>


class DATASHARED_EXPORT AbstractData : public AbstractModelItem
{
    Q_OBJECT

public:

    explicit AbstractData(QObject *parent = 0);
    AbstractData(const AbstractData& other);

    virtual int fieldCount() const;
    virtual QVariant fieldName(int index) const;

    Q_INVOKABLE virtual void onInitialize();

    virtual QStringList options(int field) const = 0;
    virtual MetaData *metaData() const = 0;

    
};

#endif // ABSTRACTDATA_H
